package easy

/*
时间复杂度：O(rowIndex)
空间复杂度:O(1) 不考虑返回值的空间占用

规律：获取杨辉三角第n行第m个数：C(n, m) n在下m在上,n从0开始m从1开始
*/
func getRow(rowIndex int) []int {
	row := make([]int, rowIndex+1)
	row[0] = 1
	for i := 1; i <= rowIndex; i++ {
		// row[i]对应C(n,m), row[i-1]对应C(n,m-1)；而 C(n,m)=n!/(m!*(n-m)!) c(n,m-1)=n!/((m-1)!*(n-m+1)!)
		// C(n,m)=(n!/((m-1)!*(n-m+1)!)) * ((n-m+1)/m)
		row[i] = row[i-1]*(rowIndex-i+1)/i
	}
	return row
}
